/*
 * FileName：SysUserRoleServiceImpl.java 
 * <p>
 * Copyright (c) 2017-2020 <a href="https://www.smartwx.info">hermit(1154808491@qq.com)</a>.
 * <p>
 * Licensed under the GNU General Public License, Version 3 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p>
 * http://www.gnu.org/licenses/gpl-3.0.html
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 */
package com.smart.sys.service.impl;

import javax.annotation.Resource;

import com.smart.common.util.StringUtil;
import com.smart.common.util.Util;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

import com.smart.sys.dao.SysUserRoleMapper;
import com.smart.sys.entity.SysUserRole;
import com.smart.sys.service.ISysUserRoleService;

/**
 * 用户角色关系
 *
 * @author hermit
 * @version 2.0
 * @date 2018-12-30 22:26:32
 */
@Service
@Transactional
public class SysUserRoleServiceImpl implements ISysUserRoleService {

    @Resource
    private SysUserRoleMapper sysUserRoleMapper;

    @Override
    public SysUserRole queryObject(SysUserRole sysUserRole) throws Exception {
        return sysUserRoleMapper.queryObject(sysUserRole);
    }

    @Override
    public List<SysUserRole> queryList(SysUserRole sysUserRole) throws Exception {
        return sysUserRoleMapper.queryList(sysUserRole);
    }

    @Override
    public List<SysUserRole> queryListByPage(SysUserRole sysUserRole) throws Exception {
        return sysUserRoleMapper.queryListByPage(sysUserRole);
    }

    @Override
    public Integer queryCount(SysUserRole sysUserRole) throws Exception {
        Integer ct = sysUserRoleMapper.queryCount(sysUserRole);
        return ct == null ? 0 : ct;
    }

    @Override
    public Integer insert(SysUserRole sysUserRole) throws Exception {
        //先删除后添加
        sysUserRoleMapper.delete(sysUserRole);
        if (null != sysUserRole && StringUtil.isNotBlank(sysUserRole.getRoleId())) {
            String[] roleIds = sysUserRole.getRoleId().split(",");
            for (String roleId : roleIds) {
                sysUserRoleMapper.insert(SysUserRole.builder()
                        .id(Util.getUUID())
                        .userId(sysUserRole.getUserId())
                        .roleId(roleId).build());
            }
        }
        return 1;
    }

    @Override
    public Integer update(SysUserRole sysUserRole) throws Exception {
        return sysUserRoleMapper.update(sysUserRole);
    }

    @Override
    public Integer delete(SysUserRole sysUserRole) throws Exception {
        return sysUserRoleMapper.delete(sysUserRole);
    }

    @Override
    public Integer deleteBatch(List<String> ids) throws Exception {
        return sysUserRoleMapper.deleteBatch(ids);
    }
}
